以下代码删掉了多余内容,调用方法会得到modal==null,如果必须使用异步请求,且modal实例在异步请求成功后生成,如何改变代码可以使得调用remoteModalOp得到modal对象?
function remoteModalOp(url, title, size) {
if (!url) return;
var modal = null;
$.get(url, '', function(data) {
if (data) {
modal = bootbox.dialog({
title: title,
message: data,
size: size,
className: 'over'
});
}
})
return modal;
}

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
让remoteModalOp返回一个defer对象,请求完成后defer.reslove(modal)
实际上,js 中你很少能看到有同步的代码,可以认为 js 是面向回调的语言,所以你需要在 remoteModalOp 中添加一个参数,一个 callback:
可以通过以下代码调用。
remoteModalOp(url, title, size, function() {
// do something;
});
当然这里忽略了一些 err 的处理。