要求内部 Q 承诺
Require inside Q promise
我需要在Q结构中使用require
Q.fcall(function () {
console.log('1');
}).then(function () {
console.log('2');
require(['myfile'], function () {
console.log('2.1');
});
}).then(function () {
console.log('3');
});
我期待什么?
1
2
2.1
3
我得到了什么?
1
2
3
2.1
可能吗?我应该如何重写构造?
您需要获得 require
才能使用 promise,否则您将拥有两个独立的异步系统。我没有测试,但像这样的东西应该可以工作:
Q.fcall(function () {
console.log('1');
}).then(function () {
var deferred = Q.defer();
console.log('2');
require(['myfile'], function (myfile) {
console.log('2.1');
deferred.resolve(myfile);
});
return deferred.promise;
}).then(function (myfile) {
console.log('3');
});
我是 promises
的新手。因此我也不确定,但你能试试这个吗:
Q.fcall(function () {
console.log('1');
}).then(function () {
console.log('2');
return require(['myfile']);
}).then(function () {
console.log('2.1');
}).then(function (){
console.log('3');
});
我需要在Q结构中使用require
Q.fcall(function () {
console.log('1');
}).then(function () {
console.log('2');
require(['myfile'], function () {
console.log('2.1');
});
}).then(function () {
console.log('3');
});
我期待什么?
1
2
2.1
3
我得到了什么?
1
2
3
2.1
可能吗?我应该如何重写构造?
您需要获得 require
才能使用 promise,否则您将拥有两个独立的异步系统。我没有测试,但像这样的东西应该可以工作:
Q.fcall(function () {
console.log('1');
}).then(function () {
var deferred = Q.defer();
console.log('2');
require(['myfile'], function (myfile) {
console.log('2.1');
deferred.resolve(myfile);
});
return deferred.promise;
}).then(function (myfile) {
console.log('3');
});
我是 promises
的新手。因此我也不确定,但你能试试这个吗:
Q.fcall(function () {
console.log('1');
}).then(function () {
console.log('2');
return require(['myfile']);
}).then(function () {
console.log('2.1');
}).then(function (){
console.log('3');
});