Javascript - 在 Promise 中,resolve 函数传递一个值作为参数。但是如果单独解决会发生什么?

Javascript - In Promise, resolve function passes a value as a parameter. but what is going on if resolve stands alone?

我对 Promise 中的 resolve 函数有疑问。

我在 Promise 中理解 'resolve' 作为容器将 promise 传递给下一个 'then()'。 喜欢,

const something =()=>{return new Promise( (resolve,reject) => { resolve ('hi') } );

something.then( (data) =>{ console.log(data) } ) 

它会记录 ('hi') 因为 'hi' 被 resolve 传递给下面的 'then'。 由于我看到了与上述类似的情况,我认为 resolve 是将 Promise 对象传递给以下对象的东西。

然而,最近我运行进入了一个代码示例,如下所示。

const getcurrentLoc = ()=>{
    return new Promise((resolve)=>{
        navigator.geolocation.getCurrentPosition(resolve)
    })
}

由于需要传递坐标值, 我期待我写了如下代码。

const getcurrentLoc = ()=>{
    return new Promise((resolve)=>{
        resolve(navigator.geolocation.getCurrentPosition())
    })
}

但是没有成功。 我对 'resolve' 有什么误解?

What did I misunderstand about 'resolve'?

你的误解好像更多的是关于navigator.geolocation.getCurrentPosition

看看the documentation.

它returns undefined所以resolve(navigator.geolocation.getCurrentPosition())resolve(undefined)是一样的。

它接受的第一个参数是一个函数resolve是一个函数)。 getCurrentPosition 使用坐标对象调用第一个参数中的函数。

所以你得到 resolve(the_coordinates_object).