javascript - nodejs等待函数执行

标签 javascript node.js callback

如何等待函数返回。有没有办法在继续执行代码之前等待函数完成执行。我想等待 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/

相关文章:

javascript - .one 和回调

javascript - Angular JS-尝试创建视频选择器 "angular way"

javascript - MarkLogic 8 - 将大型结果集流式传输到文件 - JavaScript - Node.js 客户端 API

node.js - 如何在 Mongoose 模式中设置大于 0 的最小值?

node.js - 广播时不支持回调

javascript - 按字母顺序对数组排序 - Angularjs

node.js - 与僧侣的数据库连接错误处理

javascript - 使用 node.js 处理 PLUpload 上传

c++ - 无法hook回调函数?

ios - 回调违反控制反转