node.js中的请求承诺缺乏理解

node.js中的请求承诺缺乏理解,node.js,promise,request-promise,Node.js,Promise,Request Promise,我试图使用request promise将js对象中的数据插入到数据库中,并使用POST的响应更新对象,但我不知道如何在最后一次中获取更新的对象。然后() 我不明白很好的承诺,也不知道如何管理如果。。。否则 var rp=require('request-promise')) var test_films=require(“./films.json”) 函数searchPerson(persons、firstname、lastname){ 返回人员。过滤器(功能(p){ 返回p.firstna

我试图使用request promise将js对象中的数据插入到数据库中,并使用POST的响应更新对象,但我不知道如何在最后一次中获取更新的对象。然后()

我不明白很好的承诺,也不知道如何管理如果。。。否则

var rp=require('request-promise'))
var test_films=require(“./films.json”)
函数searchPerson(persons、firstname、lastname){
返回人员。过滤器(功能(p){
返回p.firstname==firstname&&p.lastname==lastname
})
}
变量选项={
uri:'http://my-api',
json:true
}
rp(选项)
.然后(职能(人员){
测试电影。forEach(功能(喜剧演员){
var found=searchPerson(persons,comedien.firstname,comedien.lastname)
if(find.length==0){
console.log('user:'+comedien.firstname+'+comedien.lastname+'未找到,请插入!')
选项={
方法:“POST”,
uri:'http://my-api',
表格数据:{
名字:喜剧演员,名字,
姓氏:喜剧演员
},
json:true
}
//在数组中创建的后置角色和插入id
rp(选项)
.然后(功能(主体){
喜剧演员.person\u id=body.id
})
.catch(函数(err){
console.log(错误)
})
}
否则{
console.log('User:'+comedien.firstname+'+comedien.lastname+'已存在!')
comedien.person\u id=找到[0]。id
}
})
返回测试
})
.然后(函数(结果){
//在数据库中插入对象后,该对象不会更新
console.log(结果)
})
.catch(函数(err){
console.log(错误)

})
*警告:我自己也是一个相对的JS新手,但由于还没有其他人回答,我想我可以在此期间提供一些帮助-不是吨,我不是专家,但可能足以为您指出正确的方向

问题在于如何将.then()链接在一起,一个接一个。为了在最后链接另一个.then(),第一个.then()必须返回一个函数(该函数可以返回您的测试)。目前,您现有的.then()只返回变量test\u,它需要返回整个函数

请看本帖中的第二个答案:

第二个答案中更正的代码有多个.then(),并用返回正确链接。不幸的是,我没有足够的技能来逐行引导您,您必须查找更多承诺的示例。

此的部分副本:,但您还需要
处理程序中返回
嵌套的承诺。然后()
处理程序才能将它们链接到更高级别的
。然后()
处理程序将等待它们并包含它们的结果。