您好我是Js的新手,我想在打印height
之前等待一些异步功能完成。但代码永远不会打印它我无法理解为什么。请帮帮我:(
ni
答案 0 :(得分:1)
Promise.all(iterable)方法返回一个解析时间的promise 可迭代参数中的所有承诺都有已解决,或拒绝 由于第一个通过的拒绝承诺的原因。
在您的示例中,您没有解决或拒绝您的承诺:
resolve
请注意参数reject
,new Promise((resolve, reject) => {
var result = compileEntry(item);
if(result) {
resolve(result);
}else {
reject("reson");
}
})
。您应该使用这些回调来解决或拒绝承诺。例如:
składka
答案 1 :(得分:0)
您需要使用resolve
和reject
new Promise(/ * executor * / function(resolve,reject){...});
var lib_array = [1, 2, 3];
function compileEntry(item, index) {
return new Promise((resolve, reject) => {
setTimeout(function() {
resolve(console.log(item));
}, index * 1000);
});
}
this.run = function() {
'use strict';
let compile_lib = lib_array.map((item, index) => {
return compileEntry(item, index);
});
Promise.all(compile_lib).then(() => {
console.log("ni");
});
}
this.run();