当前位置: 首页 > 面试题库 >

如何实现此功能-node.js

魏彦
2023-03-14
问题内容

我有一个ajax调用,需要返回一个promise。功能如下

client.tickets.create(ticket,  function(err, req, result) {
  if (err) {    
    logger.error(err);

    return false;
  }

  return JSON.stringify(result);
});

在执行下一个动作之前,我必须等待该功能执行。我该如何保证这个功能?

我尝试了以下操作,它给了我一个错误,说Cannot call method then of undefined

return client.tickets.create(ticket).then(function(result){
    return JSON.stringify(result);
},function(err){
    logger.error(err);
    return false;
});

问题答案:

您有错误,因为create()它不是Promise。承诺异步功能非常容易(如今,nodejs具有内置的Promise支持):

function createTicket(ticket) {
    // 1 - Create a new Promise
    return new Promise(function (resolve, reject) {
        // 2 - Copy-paste your code inside this function
        client.tickets.create(ticket, function (err, req, result) {
            // 3 - in your async function's callback
            // replace return by reject (for the errors) and resolve (for the results)
            if (err) {
                reject(err);
            } else {
                resolve(JSON.stringify(result));
            }
        });
    });
}

// 4 - consume your promise with then() (resolved promise) and catch (rejected promise)
createTicket(ticket).then(function (result) {
    // deal with result here
}).catch(function (err) {
    // deal with error here
});


 类似资料:
  • 需求:实现一个功能,有多个span标签,内容为用户名,点击span标签,使其以tag的形式出现在一个contentEditable为true的div中,并且tag有背景色和4px的padding,tag不可编辑,当鼠标在div有焦点,则在当前焦点处插入tag,否则将tag加在最后面。 各位有什么实现方案吗 技术:在vue项目中。不要库。原生js实现

  • 现在花了几个小时在这上面,但它似乎不起作用。一个监听器点击我的站点,我获取了他们的ip,最终得到了大致的纬度和经度。我有一张关于我的广播电台的表格,上面有它们的大致纬度和经度。我只是想看看新的听众是否在我的一个电台25英里以内,这样我就可以给他们提供信息。如果没有,我会给他们我的全球流。 当我使用下面的查询时, 输出为: STDClass对象([cityName]= 长距离计算的结果不应该是一个距

  • 问题内容: 我正在开发一个Java桌面应用程序,其中需要实现回收站功能。目前: 我使用桌面应用程序将文件复制到名为回收站的文件夹中,然后删除原始文件。 我将目标路径存储在一个文本文件中,该文件已被删除,只是为了将文件还原到原始位置。 还原文件时,我只是将文件移到原始位置。 我的问题是,当从不同位置删除具有相同名称的文件时,所有移至由我创建的回收站文件夹和具有相同名称的旧文件的所有文件都将被覆盖。

  • 本文向大家介绍javascript如何实现暂停功能,包括了javascript如何实现暂停功能的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的自定义网页拖动类。分享给大家供大家参考,具体如下: Javascript本身没有暂停功能(sleep不能使用)同时 vbscript也不能使用doEvents,故编写此函数实现此功能。 javascript作为弱对象语言,一个函数也可以作为

  • 问题内容: IObjectTest是具有单个布尔测试(对象o)方法的接口 FilteringIterator是Iterator的实现,该实现使用另一个Iterator和一个IObjectTest实例初始化:new FilteringIterator(myIterator,myTest)。然后,您的FilteringIterator将允许在“ myIterator”上进行迭代,但是会跳过所有未通过“

  • 问题内容: 我需要用于区域名称的initcap功能。有什么办法可以在MySQL中实现呢? 非洲 印度次大陆 美国西海岸 欧洲/英国 这样结果可以吗?有什么建议么?提前致谢。 问题答案: 有时候我在MySQL中寻找内置的initcap / ucfirst函数,但不幸的是找不到这样的字符串函数,所以决定写我自己的..感谢MySQL社区成员纠正了我函数中的错误并将其发布回去。