根据此处的答案https://stackoverflow.com/a/52174259/2690257
如果我希望将方法转换为Promise函数,请插入return New Promise in the code.
我目前有这种方法。
function takeWebshot(fLine, sLine, pID, prodPlate) {
return new Promise((resolve, reject) => {
webshot('citylocsblog.com/preview/productpreview/testy.html?prod=' + prodPlate, '../screenshot/' + pID +'.png', options, function(err) {
if(err) { return reject(err); } resolve()
});
})
在上面我已经这样做了。
webshot方法是我在npm中使用的模块,该模块使用幻影js进行屏幕截图。执行后,它将返回一个错误,这就是为什么最后我将函数resolve或reject履行诺言的原因。
我这样调用takeWebshot方法,然后执行一个then:
takeWebshot(firstLine, secondLine, previewID, productPlate)
.then(() => console.log("promise works!"))
Console.log则不执行任何操作。我没有错误,只是没有触发。有什么想法我做错了吗?
答案 0 :(得分:-1)
仅当webshot
回调出现错误时,您才兑现承诺;如果没有err
,请尝试解决:
return new Promise((resolve, reject) => {
webshot('...' + prodPlate, '../screenshot/' + pID +'.png', options, function(err) {
//error
if(err) {
reject(err);
}
//no error
resolve();
});
})
答案 1 :(得分:-2)
您键入:
public bool IsNationalIdExist(string nationalId)
{
var validateName = _user.FirstOrDefault
(x => x.UserId == nationalId);
if (validateName != null)
{
return true;
}
else
{
return false;
}
// return false;
}
尝试:
[IsValidNationalId]
[UniqueNationalId]
public string NationalId { get; set; }