承诺拒绝暂停,但没有错误是日志

时间:2016-06-12 05:00:32

标签: javascript node.js mongodb promise

下面是Nodejs的一段代码。我使用猫鼬查询Mongodb。这段代码暂停在" A行和#34;消息"暂停异常"。控制台显示没有错误。与此同时,这似乎只有在我运行VS Code时才会发生。从控制台运行应用程序不会引发任何异常。

我倾向于说这是一个VS Code问题。有没有人见过/面对相同或类似的东西?



Board.findOne({ boardId: id }, function (err, data) {
	if (!err) {
		data ? resolve(data.children) : reject(data);  //Line A
		// line above pauses execution with this message: "Paused on Exception"
		// No error logged in console. And this seem to happen only in VS code.
	}else{
		reject(err);
	}
 }




1 个答案:

答案 0 :(得分:1)

Mongoose已经支持promises,因此您可以将代码重写为:

    public static string getUrlContent (string url)
    {

        var myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        myHttpWebRequest.Method = "GET";
        myHttpWebRequest.AllowAutoRedirect = true;
        myHttpWebRequest.ContentLength = 0;
        myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
        myHttpWebRequest.Headers.Add("Cookie", "=en%5FUS;");
        myHttpWebRequest.UserAgent = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/49.0.2623.108 Chrome/49.0.2623.108 Safari/537.36";
        //myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate, sdch");
        myHttpWebRequest.Headers.Add("Accept-Language", "en-US,en;q=0.8");
        myHttpWebRequest.Headers.Add("Cookie", "wlcme=true");
        //myHttpWebRequest.CookieContainer = new CookieContainer();
        //myHttpWebRequest.Headers.Add("X-Macys-ClientId", "NavApp");
        var response = (HttpWebResponse)myHttpWebRequest.GetResponse();
        var rmyResponseHeaders = response.Headers;
        Console.WriteLine ("Content length is {0}", response.ContentLength);
        Console.WriteLine ("Content type is {0}", response.ContentType);

        // Get the stream associated with the response.
        Stream receiveStream = response.GetResponseStream ();
        // Pipes the stream to a higher level stream reader with the required encoding format. 
        StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);

        //Console.WriteLine ("Response stream received.");
        Console.WriteLine (readStream.ReadToEnd ());
        var josnStr = readStream.ReadToEnd ();
        Console.WriteLine (josnStr);
        return josnStr;
        //Encoding enc1 = Encoding.GetEncoding(1252);

    }

也许这也解决了您的VS Code问题。