鍍金池/ 問(wèn)答
離魂曲 回答

add 函數(shù)里面定義的 b 是局部變量,并不會(huì)修改掉全局變量,可以像這樣修改全局變量

def add():
    global b
    b = 2
艷骨 回答

react 里面只有用了setstate才能觸發(fā)render,使?fàn)顟B(tài)發(fā)生改變

深記你 回答

請(qǐng)你仔細(xì)看看,computed 是個(gè)函數(shù)嗎?

computed: mapState()

如果還不明白的話:

function mapState() {
  return {}
}
...
computed: mapState() // computed 是個(gè)函數(shù)嗎?

如果還不明白的話,建議你暫停 Vue 的學(xué)習(xí),先補(bǔ)一補(bǔ) javascript 基礎(chǔ)

希望對(duì)你有幫助

陌離殤 回答

下個(gè) npm 包吧,推薦 anywhere, 可以在任意文件夾起個(gè)server 來(lái)本地查看。

還吻 回答

你是在ie 里面, 測(cè)試的代碼? 若果是 建議 查看 ie 對(duì) XMLHttpRequest 兼容實(shí)現(xiàn)。
或者 你打包里面 開(kāi)著代碼校驗(yàn),例如 eslint?

  • NSTimer 需要一個(gè)運(yùn)行的Runloop 來(lái)處理其定時(shí)任務(wù), MainThread是一直啟動(dòng)并運(yùn)行的,所以在自定的線程如果使用NSTIme必須手動(dòng)開(kāi)啟并運(yùn)行子線程的Runloop
  • NSTimer 必須調(diào)用 invalidate 來(lái)停止其定時(shí)任務(wù),并且NSTimer 對(duì)其Target是強(qiáng)引用,要注意Target 與 - NSTimer間造成的循環(huán)引用造成的內(nèi)存泄漏(可以封裝成一個(gè)類(lèi)方法來(lái)解決此問(wèn)題)
  • NSTimer 的創(chuàng)建和 invalidate必須放在相同的線程中進(jìn)行
  • GCDTimer 是基于GCD實(shí)現(xiàn)的,使用的時(shí)候只要我們把任務(wù)提交給相應(yīng)隊(duì)列就好
  • GCDTimer 在使用時(shí)要注意 dispatch_resume(obj) dispatch_suspend(obj) -dispatch_source_cancel(obj)API 的使用
  • GCDTimer 在對(duì)文件資源定期進(jìn)行讀寫(xiě)操作時(shí)很方便,其他與NSTimer使用場(chǎng)景差不多
幼梔 回答

自己頂一下 不要沉

下墜 回答

樓上兄弟回答基本上正確。

當(dāng)你在的setTimeout里的函數(shù)執(zhí)行的時(shí)候已經(jīng)進(jìn)入了下一個(gè)的事件循環(huán)“tick”中,e.currentTarget被置為了null。

孤星 回答

js 修改偽元素屬性的方法:

css

.left-up-ico::before {
    background: rgba(30, 136, 255, 1);
}

html

<div class="left-up-ico"></div>

js

 document.styleSheets[0].addRule('.left-up-ico::before ','background: rgb(165, 165, 165) !important');
離魂曲 回答

node-iconv

官網(wǎng)實(shí)例

// convert from UTF-8 to ISO-8859-1
var Buffer = require('buffer').Buffer;
var Iconv  = require('iconv').Iconv;
var assert = require('assert');

var iconv = new Iconv('UTF-8', 'ISO-8859-1');
var buffer = iconv.convert('Hello, world!');
var buffer2 = iconv.convert(new Buffer('Hello, world!'));
assert.equals(buffer.inspect(), buffer2.inspect());
// do something useful with the buffers
鹿惑 回答
await操作符期望后面的表達(dá)式是一個(gè)promise,如果不是promise,那么轉(zhuǎn)換為resovled promise,也就是通過(guò)Promise.resolve方法調(diào)用
function query(query,callback){
    setTimeout(function(){
        callback&&callback(query);
    },2000);
}

async function f(){
    await query("1",async function(result){
        console.log("query1:"+result);
        if(result==="1"){
            await query("2",async function(result){
                console.log("query2:"+result);
            });
        }else{
            await query();
        }
        console.log("~~~~end~~~~~");
    });
}
f();

輸出

query1:1
~~~~end~~~~~
query2:2

而不是期望的

query1:1
query2:2
~~~~end~~~~~

那么我們就需要改造下

function query(paremeter,callback){
    return new Promise(function(resolve,reject){
        setTimeout(function(){
            callback&&callback(paremeter);
            resolve();
        },2000);
    });

}

async function f(){
    await query("1",async function(result){
        console.log("query1:"+result);
        if(result==="1"){
            await query("2",async function(result){
                console.log("query2:"+result);
            });
        }else{
            await query();
        }
        console.log("~~~~end~~~~~");
    });
    
   
}
f();
console.log("oh yeah");

輸出:

oh yeah
query1:1
query2:2
~~~~end~~~~~

和期望的還是有出入:

query1:1
query2:2
~~~~end~~~~~
oh yeah

應(yīng)為f函數(shù)沒(méi)有await操作符修飾,是一個(gè)同步調(diào)用,所以 oh yeah將會(huì)被接下來(lái)馬上執(zhí)行
好!,添加 await 后執(zhí)行
輸出:

query1:1
oh yeah
query2:2
~~~~end~~~~~

還是不對(duì),這是因?yàn)榈?次query await 執(zhí)行完后query已經(jīng)得到了resolve的值了,f函數(shù)已經(jīng)執(zhí)行完畢了,下一語(yǔ)句就會(huì)被執(zhí)行,而不會(huì)等回調(diào)中的結(jié)果,除非

function query(paremeter,callback){
    return new Promise(function(resolve,reject){
        setTimeout(async function(){
            await callback(paremeter);
            resolve();
        },2000);
    });
}

async function f(){
    await query("1",async function(result){
        console.log("query1:"+result);
        if(result==="1"){
            await query("2",async function(result){
                console.log("query2:"+result);
            });
        }else{
            await query();
        }
        console.log("~~~~end~~~~~");
    });
    
   
}
await f();
console.log("oh yeah");

結(jié)果:

query1:1
query2:2
~~~~end~~~~~
oh yeah

其實(shí)既然使用到了await操作符,那么在接口設(shè)計(jì)的時(shí)候就需要就要避免再使用回調(diào)函數(shù)的處理方式,
可以改造如下:

function queryWithPromise(paremeter){
    return new Promise(function(resolve,reject){
        setTimeout(async function(){
            resolve(paremeter||"DEFAULT");
        },2000);
    });
}

async function f(){
    var result=await queryWithPromise("1");
    console.log("query1:"+result);
    if(result==="1"){
        result=await queryWithPromise("2");
        console.log("query2:"+result);
    }else{
        result=await queryWithPromise();
        console.log("default:"+result);
    }
    
    console.log("~~~~end~~~~~");
    return result;
   
}
var result=await f();
console.log("f result:"+result);
console.log("oh yeah");

結(jié)果:

query1:1
query2:2
~~~~end~~~~~
f result:2
oh yeah

和同步編程思維match

離殤 回答

const res = Stream.prototype.on.call(this, ev, fn);
這一句話不是注冊(cè)任何傳入的回調(diào)函數(shù)嗎
下面的判斷是對(duì)綁定data或者readable之后對(duì)狀態(tài)的處理

陌南塵 回答

其實(shí)不必這樣,axios有一個(gè)全局?jǐn)r截器,可以攔截發(fā)送請(qǐng)求和接受請(qǐng)求。然后你寫(xiě)一個(gè)loading組件,在全局?jǐn)r截器中引入,發(fā)送請(qǐng)求時(shí)候渲染loading,結(jié)束后隱藏loading。至于你說(shuō)的渲染數(shù)據(jù)的問(wèn)題,可以在組件內(nèi)利用條件渲染來(lái)做。有數(shù)據(jù)就渲染,沒(méi)有數(shù)據(jù)就渲染null。具體代碼如下:

import axios from 'axios';
import { Toast } from 'antd-mobile';
axios.interceptors.request.use((config)=>{
    Toast.loading('加載中',0);
    return config
});
axios.interceptors.response.use((config)=>{
    Toast.hide();
    return config
});
久不遇 回答

apply_async(func[, args[, kwds[, callback]]])
你的用法明顯不對(duì)嗎。

import time
from multiprocessing import Pool

def func(n):
    print "This starts task{}.".format(n)
    time.sleep(n)
    print "This ends task{}.".format(n)

    
pool = Pool(processes=3)
pool.map(func, range(3))
pool.join()

textarea有maxlength屬性的,
<textarea maxlength="number">
把number設(shè)大點(diǎn)試試。

config.inc.php中大概第20行的位置修改配置中 admin 為你期望的目錄 my_admin_dir

/** 后臺(tái)路徑(相對(duì)路徑) */
define('__TYPECHO_ADMIN_DIR__', '/my_admin_dir/');

修改admin目錄為my_admin_dir

Typecho如何修改默認(rèn)后臺(tái)登陸入口?

笑忘初 回答

remote-method 在輸入值發(fā)生變化時(shí)調(diào)用,參數(shù)為當(dāng)前輸入。
change 是在選中后才觸發(fā),
在 遠(yuǎn)程搜索等類(lèi)似的聯(lián)想功能,我覺(jué)得 還是避免不了頻繁調(diào)用接口,
這里可以使用 函數(shù)防抖 試試 高級(jí)函數(shù)技巧-函數(shù)防抖與節(jié)流[]

冷溫柔 回答

子頁(yè)面當(dāng)as=true的時(shí)候,修改route的query,父頁(yè)面監(jiān)聽(tīng)這個(gè)query