相关疑难解决方法(0)

为什么全局变量不好?

在这里使用它对我来说是完全有意义的.会有什么选择?我怎么能完全避免使用它们,最重要的是根据jsLint使用全局变量的原因.

(function($){
  $(function(){
   $body = $('body'); //this is the BAD Global

   $.each(somearray ,function(){ $body.dosomething() });

   if (something){
     $body.somethingelse();
   }

  });
}(jQuery));
Run Code Online (Sandbox Code Playgroud)

你能帮我理解一下吗?并给我一个更好的解决方案?

javascript

12
推荐指数
1
解决办法
1427
查看次数

Javascript:将AJAX结果保存为类变量

我知道javascript不使用Class,至少不是常识.我想知道如何在类变量中返回并保存AJAX返回值,而不是在回调中调用多个方法.

var Reader = function(){
  //Initialize some variables
  this.data = null;
}

Reader.prototype.makeAjaxCall = function(urlPath){
   //Make and Ajax call and return some value
   Ajax.success(function(data){
     this.data = data;
   });
}

Reader.prototype.searchData = function(param){
   //Needs access to this.data
}
Reader.prototype.findData = function(id){
  //Needs access to this.data
}

Reader.prototype.deleteItem = function(id){
  // Needs access to this.data
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,需要data在内部调用需要访问属性的任何函数ajax success callback,所以如果我有十个需要数据的方法,我将不得不在回调中排列所有这些,我感觉不对.如何最小化回调中的函数数量,并以其他方式确保函数成功并将数据保存为实例变量data.

javascript ajax jquery callback

10
推荐指数
2
解决办法
1754
查看次数

如何在浏览器的JavaScript控制台中访问ES6模块中定义的功能?

我有一个在ES6模块(sender.js)中定义的函数,如下所示:

function send() {
   // do stuff
}
export {send};
Run Code Online (Sandbox Code Playgroud)

该模块在应用程序的主JavaScript文件app.js中使用如下:

import {send} from "./sender"
Run Code Online (Sandbox Code Playgroud)

send功能在app.js文件中可用,但它不在 Firefox的Javascript控制台中:

> send
ReferenceError: send is not defined
Run Code Online (Sandbox Code Playgroud)

如何send在JavaScript控制台中导入该函数?

javascript ecmascript-6 es6-modules

10
推荐指数
1
解决办法
2587
查看次数

使用相同的类javascript创建多个div

我是 JavaScript 新手,想知道如何使用相同的类名动态创建多个 div。我有以下代码,但它只创建了一个 div 实例。

<div id="wrapper">
    <div id="container">
        <div id="board">
            <script>
                var board = document.createElement('div');
                board.className = "blah";

                for(x=0; x<9;x++) {
                document.getElementById('board').appendChild(board);
                }
            </script>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
2万
查看次数

对象类型的 TypeScript 索引签名隐式具有类型 any

我正在尝试在 window 对象上附加属性。这是我的代码。

 cbid:string ='someValue';
 window[cbid] = (meta: any) => {
         tempThis.meta = meta;
         window[cbid] = undefined;
         var e = document.getElementById(cbid);
         e.parentNode.removeChild(e);
         if (meta.errorDetails) {
             return;
         }
     };
Run Code Online (Sandbox Code Playgroud)

编译器开始抛出以下错误。

对象类型的 TypeScript 索引签名隐式具有类型 any

有人可以告诉我我在哪里做错了吗?

typescript

5
推荐指数
1
解决办法
4315
查看次数

是否可以在 TypeScript 中共享全局声明?

我通常将一些服务器端变量放入全局范围,以便我可以从客户端 TypeScript 代码中的任何位置访问它们,例如:

.cshtml 中的服务器:

<script>
  const RazorGlobals = {
    apiBaseUrl: '@Model.ApiBaseUrl'
  }
</script>
Run Code Online (Sandbox Code Playgroud)

客户端代码:

declare const RazorGlobals: {
  apiBaseUrl: string
}

fetch(RazorGlobals.apiBaseUrl + '/myResource').then(doStuff)
Run Code Online (Sandbox Code Playgroud)

目前,我必须在declare const RazorGlobals...需要使用它的每个文件顶部重复该部分。我正在寻找一种在单个位置定义此声明的方法,例如以下伪代码:

全局.d.ts:

export declare const RazorGlobals: {
  apiBaseUrl: string
}
Run Code Online (Sandbox Code Playgroud)

文件1.ts:

import './globals'

fetch(RazorGlobals.apiBaseUrl + '/myResource').then(doStuff)
Run Code Online (Sandbox Code Playgroud)

文件2.ts:

import './globals'

fetch(RazorGlobals.apiBaseUrl + '/myOtherResource').then(doOtherStuff)
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这样的目标?

typescript

3
推荐指数
1
解决办法
4601
查看次数

如何在 Beast 中保持此 HTTPS 连接持久?

我正在向 GraphQL 服务器发出大约 30,000 个查询;因为我有一个高延迟连接,所以我使用线程并行执行许多查询。当前每个查询都会建立一个新连接;我想重用连接,这应该会减少整个下载所需的时间。这是我的代码:

#include <boost/asio.hpp>
#include <boost/asio/ssl.hpp>
#include <boost/beast.hpp>
#include <boost/beast/ssl.hpp>
#include <boost/asio/ssl/error.hpp>
#include <boost/asio/ssl/stream.hpp>
#include <chrono>
#include <vector>
#include <array>
#include <iostream>
#include "http.h"

namespace beast=boost::beast;
namespace http=beast::http;
namespace net=boost::asio;
namespace ssl=net::ssl;
using tcp=net::ip::tcp;
using namespace std;
namespace cr=chrono;

struct TimeBytes
/* Used to compute the latency and data rate, which will be used
 * to compute the number of I/O threads for the next run.
 */
{
  float ms;
  int bytes;
};

cr::steady_clock clk;
vector<TimeBytes> timeBytes; …
Run Code Online (Sandbox Code Playgroud)

c++ https multithreading boost-asio boost-beast

3
推荐指数
1
解决办法
1200
查看次数

一个方法局部变量到外部函数

如何获取into 方法的quantity局部变量值并将其分配给其中的局部变量?valueChangedfunctionName1functionName2

var functionName1 = function() {
    $newCheckoutNumberPicker.WanSpinner({
        maxValue: 99,
        minValue: 0,
        valueChanged: function(ele, val) {
            var quantity = val              
        }
    });    
}

var functionName2 = function() {
    var test1 = "";
    functionName1();
}
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
93
查看次数