如何等待函数返回。有没有办法在继续执行代码之前等待函数完成执行。我想等待 createThumbnail 函数返回缓冲区,然后再继续。谢谢。
createThumbnail: function(imagepath){
Jimp.read(imagepath).then(function (lenna) {
lenna.resize(256, 256) // resize
.quality(60) // set JPEG quality
// .greyscale() // why on earth would i need black and white
.getBuffer(Jimp.MIME_JPEG,function(err, buffer, callback){ // I have other Options like png etc.
return buffer;
})
}).catch(function (err) {
console.error(err);
});
},
然后在另一个文件中我调用这个函数
var thum_image = functions_api.createThumbnail(Imagepath);
console.log(thum_image); // its null
最佳答案
您可以使用回调。
回调是在完成某些操作后执行的函数,在您的情况下,图像最终加载。
不要仅采用 1 个参数,而是采用加载图像后调用的附加函数:
createThumbnail: function(imagepath, callback){
Jimp.read(imagepath).then(function (lenna) {
lenna.resize(256, 256) // resize
.quality(60) // set JPEG quality
// .greyscale() // why on earth would i need black and white
.getBuffer(Jimp.MIME_JPEG,function(err, buffer, callback){ // I have other Options like png etc.
callback(buffer);
return buffer;
})
}).catch(function (err) {
console.error(err);
});
},
然后你可以调用该函数,例如
var thum_image = functions_api.createThumbnail(Imagepath, function (image) {
console.log("Loaded!", image);
});
关于javascript - nodejs等待函数执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38972379/